namespace Domain.DTOs.Warehouse
{
    /// <summary>
    /// 巷道DTO
    /// </summary>
    public class LanewayDTO
    {
        /// <summary>
        /// 巷道ID
        /// </summary>
        public long Id { get; set; }

        /// <summary>
        /// 巷道编号
        /// </summary>
        public string Lanewaycode { get; set; }

        /// <summary>
        /// 巷道名称
        /// </summary>
        public string Lanewayname { get; set; }

        /// <summary>
        /// 所属仓库ID
        /// </summary>
        public long Warehouseid { get; set; }

        /// <summary>
        /// 仓库名称
        /// </summary>
        public string? Warehousename { get; set; }

        /// <summary>
        /// 巷道状态 0-空闲中, 1-被占用, 2-维护中
        /// </summary>
        public int Lanewaystate { get; set; }

        /// <summary>
        /// 巷道状态名称
        /// </summary>
        public string LanewaystateText { get; set; }

        /// <summary>
        /// 巷道长度（米）
        /// </summary>
        public decimal? Length { get; set; }

        /// <summary>
        /// 巷道宽度（米）
        /// </summary>
        public decimal? Width { get; set; }

        /// <summary>
        /// 巷道高度（米）
        /// </summary>
        public decimal? Height { get; set; }

        /// <summary>
        /// 最大库位数量
        /// </summary>
        public int? MaxLocationCount { get; set; }

        /// <summary>
        /// 当前库位数量
        /// </summary>
        public int? CurrentLocationCount { get; set; }

        /// <summary>
        /// 库位使用率
        /// </summary>
        public decimal LocationUsageRate { get; set; }

        /// <summary>
        /// 巷道类型
        /// </summary>
        public string? LanewayType { get; set; }

        /// <summary>
        /// 负责人ID
        /// </summary>
        public long? ManagerId { get; set; }

        /// <summary>
        /// 负责人姓名
        /// </summary>
        public string? ManagerName { get; set; }

        /// <summary>
        /// 是否启用
        /// </summary>
        public bool IsEnabled { get; set; }

        /// <summary>
        /// 是否可用
        /// </summary>
        public bool IsAvailable { get; set; }

        /// <summary>
        /// 维护开始时间
        /// </summary>
        public DateTime? MaintenanceStartTime { get; set; }

        /// <summary>
        /// 维护结束时间
        /// </summary>
        public DateTime? MaintenanceEndTime { get; set; }

        /// <summary>
        /// 维护原因
        /// </summary>
        public string? MaintenanceReason { get; set; }

        /// <summary>
        /// 占用开始时间
        /// </summary>
        public DateTime? OccupiedStartTime { get; set; }

        /// <summary>
        /// 占用任务ID
        /// </summary>
        public long? OccupiedTaskId { get; set; }

        /// <summary>
        /// 排序序号
        /// </summary>
        public int? SortOrder { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string? Remark { get; set; }

        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreateTime { get; set; }
    }
}
